#!/bin/sh

die () { echo "$@" ; cleanup ; exit 1; }


cleanup() {
  unset -f nvm_download
  rm -rf "${NVM_DIR}/alias/lts"
  mv "${NVM_DIR}/alias/lts-backup" "${NVM_DIR}/alias/lts"
}

\. ../../../nvm.sh

MOCKS_DIR="${PWD}/mocks"

LTS_NAMES_PATH="${MOCKS_DIR}/LTS_names.txt"
LTS_LIST="$(cat "${LTS_NAMES_PATH}" | tail -n +2)"

mv "${NVM_DIR}/alias/lts" "${NVM_DIR}/alias/lts-backup" ||:
mkdir -p "${NVM_DIR}/alias/lts"

for LTS in $LTS_LIST; do
  cp "${NVM_DIR}/alias/lts-backup/${LTS}" "${NVM_DIR}/alias/lts/"
done

set -ex

# sample output at the time the test was written
TAB_PATH="${MOCKS_DIR}/nodejs.org-dist-index.tab"
nvm_download() {
  cat "${TAB_PATH}"
}

nvm_ls_remote >/dev/null || die "nvm_ls_remote_failed?!"

N=0
while IFS= read -r LTS; do
  if [ $N -gt 0 ]; then
    EXPECTED="$(nvm_alias "lts/${LTS}")"
    ACTUAL="$(nvm_alias "lts/-${N}")"
    [ "${EXPECTED}" = "${ACTUAL}" ] || die "\`nvm_alias lts/-${N}\` was \`${ACTUAL}\`; expected \`${EXPECTED}\`"
  fi
  N=$(($N+1))
done < "${LTS_NAMES_PATH}"

cleanup
